Obsidian 通过 MarkDownload 插件离线保存网页

上网浏览到好的网页文章,希望能够离线保存,永久收藏。

市面上有诸多云产品(Read It Later),帮助用户剪藏网页。但这不够完美,因为这意味着需要再引入一套系统(Read It Later),无形间提升了复杂度。

对于 0.0 Obsidian 介绍 用户来说,有没有更直接的方法?即直接将网页离线剪藏到 0.0 Obsidian 介绍 Vault,以 Markdown 格式保存。这才是我想要的完美方案。

在社区中,已有相关实践(参见我的另一篇笔记《Obsidian 如何剪藏网页》)。在诸多方案中,基于 MarkDownload 插件的方式为最佳。因此在本文中,记录了我的实践经验。

MarkDownload 插件

markdownload 是一个开源的浏览器扩展,是一个将网页以 Markdown 格式保存的 Clipper。

它并不是一个专门为 0.0 Obsidian 介绍 设计的插件,它的首要功能是将网页以 Markdown 格式离线保存。但是 0.0 Obsidian 介绍 社区对该插件的呼声高,因此 MarkDownload 提供了丰富的 Obsidian 适配选项,通过这些适配选项,能够实现非常好的 0.0 Obsidian 介绍 剪藏体验。

需要说明的是,为了达到良好的 0.0 Obsidian 介绍 剪藏体验,需要进行一些高级设置,比如添加软连接(我使用 Arch Linux)系统,因此对使用者的计算机能力有一些要求。

安装

首先进入 markdownload GitHub 首页,README 中包含针对不同浏览器的商店链接。我使用 Firefox,跳转到 Firefox 市场中安装。

如何添加到 Vault 中

网络资源2 也是一篇关于本文主题的教程,文章中提到需要安装 Obsidian Advanced URI 插件等。这里存在一些容易造成模糊的点,我在本节中进行说明。

MarkDownload 插件的功能,是将网页转换成 Markdown,连同其资源下载到本地。下载到本地后,如何存入 0.0 Obsidian 介绍 中呢?

有两种方法:

方法一是 Obsidian 安装 Obsidian Advanced URI 插件,这样,Obsidian 支持通过 URI API 创建笔记。然后,MarkDownload 启用 Obsidian 支持后,在网页中点击右键,会多出一个『send to obsidian』的选项,将 Markdown 化的网页通过 API 添加至 Obsidian 中。

这种方法存在很大的缺点:只支持文本,不支持图片,没法将图片一同保存到 Vault 中,只能存文本。这对我来说,是无法接受的。

因此便有了方法二,将 Vault 中的特定目录,通过软连接,软连接到 Downloads 目录的特定子目录下。这样,不再需要『send to obsidian』,只需要使用 MarkDownload 默认的下载方法,他会将 Markdown 化的网页连同图片一同下载到特定子目录,因为是软连接,便自然进入 Vault 中。

方法二的缺点是需要软连接这种比较高级的操作,普通用户可能需要学习一番。由于我使用 Linux 系统,创建软连接非常方便。Windows 用户可自行查阅如何在 Windows 下创建软连接。

在本文中,将介绍方法二。

对于方法二来说,Obsidian Advanced URI 插件不再需要了。

配置 MarkDownload

MarkDownload 安装好后,有丰富的配置选项。这些选项,既包括怎么存、存在那里,也包括 Markdown 的具体格式等。我们需要对这些设置选项进行设置。

添加软连接

MarkDownload 作为浏览器插件,只对用户的 Downloads 目录有访问权限,因此我们需要在 Downloads 下添加一个软连接。

我的 Obsidian Vault 位于:/home/maxiee/obsidian-notes

其中,Vault 中的子目录 /home/maxiee/obsidian-notes/999.clippers 是我希望存放剪藏的地方。

我希望将 999.clippers 软连接到 /home/maxiee/Downloads 下的 MarkDownload 目录:

ln -s /home/maxiee/obsidian-notes/999.clippers /home/maxiee/Downloads/MarkDownload

MarkDownload 配置项

进入插件的 Preferences Tab:

『Template for title/filename』需要在模板基础上,添加文件后缀:

{pageTitle}.md

关于 pageTitle 含义,在 Preferences Tab 的 『Custom text』 一节中有说明。

『 Folder inside Downloads/ to store MarkDownload clips: 』添加指定子目录:

MarkDownload

我基于『Custom text』对子目录加以完善:

MarkDownload/{date:YYYYMM}

这样,文章会按照月份保存到对应月份子目录中,更加美观。

『Enable Obsidian Integration』这个是针对方法一的,需要制定 Vault name 和 Obsidian Folder Name。启用后右键菜单会多出『send to obsidian』选项。

通过上一节《如何添加到 Vault 中》可知,我们通过软连接,其实是通过 MarkDownload 自带的下载逻辑进行剪藏。因此这里我没有勾选『Enable Obsidian Integration』,Vault name 和 Obsidian Folder Name 也没有填写。

『Download images alongside markdown files』这个要勾选,会将网页关联的图片下载到网页同名的 {pageTitle}/ 目录下。

再往下是一些 Markdown 写法习惯设置,大家可以按照自己的习惯选择。其中,有一些选项是与 Obsidian 相关的,需要设置。

『Image Style』选择『Obsidian internal embed』,让图片引用符合 Obsidian 规则。

2024-01-21:更加整洁的资源目录

经过一个月的实践,我的 MarkDownload/202401 目录下已有大量文章,但随之而来也有一个问题,每个文章都会有一个同名的目录,用于存储图片。问题是这些目录太多了,太占地方。

于是我灵机一动,我想在 MarkDownload/202401 下在创建一个目录,比如 MarkDownload/202401/images,然后让每个文章对应的目录都放在 MarkDownload/202401/images 下。

这样,MarkDownload/202401 只有一个 images 目录,剩下的就是文章了,看起来方便多了。

如何实现呢?进入 MarkDownload 的设置,找到 【Download images alongside markdown files】这一项,原来的值为:

{pageTitle}/

修改为:

images/{pageTitle}/

找一篇文章进行验证,果然可行,完美!

Off and On

这个插件,设置修改后,需要在插件列表页中,先关闭再开启后,才能够生效。

对于这一点,我不是 100% 确定。如果发现设置修改后不生效,可以按照此法重启一下插件试试。

体验

经过以上设置,下面实际演练一下。图我就不截了,通过文字来描述一下。

我随便找了一篇文章,点击 MarkDownload 插件,再点击『Download』。

下载的速度非常快,瞬间完成。

来到 Obsidian 中,看到 999.clippers 下已有 202401 子目录,文章已落入其中。

点击这篇文章,效果我非常满意。尤其是转换后的 Markdown 格式,非常经验。

尽管这一篇文章格式转换完美,但是我知道,由于 Markdown 的布局能力是弱于 HTML 的,因此对于复杂网页来说,必然会存在错乱、丢失的情况,这是不可避免的。

这个插件背后基于的 Mozilla 的 Readability.js,跟 Firefox 的阅读模式是同款。常见的大多数文章页面都能搞定,对我来说足够了。

总结

至此,MarkDownload + Obsidian 的网页离线花剪藏方案完成了。

这件事情对我意义重大,我兴奋地好几天没睡好觉,真幸运,找到这么好的方案。

网络资源


本文作者:Maeiee

本文链接:Obsidian 通过 MarkDownload 插件离线保存网页

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!